task effBG
	{
		let way = 16;
		let angle = 0;
		let obj1 = _BG1(way, angle, imgbg);
		let obj2 = _BG2(way, angle, imgbg);
		let size = 50;
		let size1 = 70;
		let x = GetX;
		let y = GetY;
		let i = 1;
		loop
		{
			x = GetX-32;
			y = GetY-16;
			Obj_SetPosition(obj1, GetX, GetY);
			Obj_SetPosition(obj2, GetX, GetY);
			i=0;
			loop(way+1)
			{
				ObjEffect_SetVertexXY(obj1, i, 0, 0);
				ObjEffect_SetVertexUV(obj1, i, x, y);
				ObjEffect_SetVertexXY(obj1, i+1, size1*cos(angle), size1*sin(angle));
				ObjEffect_SetVertexUV(obj1, i+1, x+size*cos(angle), y+size*sin(angle));
				angle+=360/way;
				i+=2;
			}
			i=0;
			loop(way+1)
			{
				ObjEffect_SetVertexXY(obj2, i, size1*cos(angle), size1*sin(angle));
				ObjEffect_SetVertexUV(obj2, i, x+50*cos(angle), y+50*sin(angle));
				ObjEffect_SetVertexXY(obj2, i+1, size*2*cos(angle), size*2*sin(angle));
				ObjEffect_SetVertexUV(obj2, i+1, x+(size*2)*cos(angle), y+(size*2)*sin(angle));
				angle+=360/way;
				i+=2;
			}
			yield;
		}
	}
	function _BG1(way, angle, imgBG)//
	{
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetX, GetY);
		ObjEffect_SetTexture(obj, imgBG);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetAngle(obj, 0, 0, 0);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_SetLayer(obj, 1);
		ObjEffect_CreateVertex(obj, way*2+2);
		ascent(i in 0..way*2+2)
		{
			ObjEffect_SetVertexColor(obj, i, 255, 254, 254, 254);
		}
		return obj;
	}
	function _BG2(way, angle, imgBG)//O
	{
		let obj = Obj_Create(OBJ_EFFECT);
		Obj_SetPosition(obj, GetX, GetY);
		ObjEffect_SetTexture(obj, imgBG);
		ObjEffect_SetRenderState(obj, ALPHA);
		ObjEffect_SetAngle(obj, 0, 0, 0);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
		ObjEffect_SetLayer(obj, 1);
		ObjEffect_CreateVertex(obj, way*2+2);
		ascent(i in 0..way*2+2)
		{
			ObjEffect_SetVertexColor(obj, i, 255, 254, 254, 254);
		}
		return obj;
	}